package iphoneBackupScanner.common;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;

public class Utils {

	/**
	 * Private Hilfsmethode um eine Hexadezimale Zahl in eine Dezimalzahl
	 * umzuwandlen.
	 * 
	 * @param str
	 *            Zeichenkette, die umgewandelt werden soll.
	 * @return Dezimalzahl.
	 */
	public static int hexToDec(String str) {

		int result = 0;
		int mult = 1;

		for (int i = str.length() - 1; i >= 0; i--) {

			int temp = 0;

			if (Character.isLetter(str.charAt(i))) {
				temp = Character.toUpperCase(str.charAt(i)) - 55;

			} else
				temp = Integer.parseInt("" + str.charAt(i));

			result += temp * mult;
			mult <<= 4;

		}

		return result;
	}
	
	
	/**
	 * Hilfmethode zum Kopieren von Daten.
	 * @param input von dem gelesen wird.
	 * @param output der Daten
	 * @throws IOException
	 */
	public static void copy(InputStream input, OutputStream output) throws IOException{
		
		byte[] buffer = new byte[1024];
		
		for(int b = input.read(buffer); b >= 0; b = input.read(buffer))
			output.write(buffer);
		
		output.flush();
		
	}
	
	/**
	 * Entfern, falls vorhanden, den Dateinamen.
	 * @param str von dem der Dateiname entfernt wird.
	 * @return Neuer String ohne dateiname.
	 */
	public static String cutFileName(final String str){
		
		if(str.lastIndexOf("/") >= 0)
			return str.substring(0, str.lastIndexOf("/"));
		
		return str;
		 
		
	}
	
	
	public static void printCSV(OutputStream output, String... strings){
		PrintWriter pw = new PrintWriter(output);
		
		for(String s: strings){
			pw.print(s);
			pw.flush();
			pw.print(";");
			pw.flush();
		}
		
		pw.println();
		
		pw.flush();
		
	}
}
